Para dominar verdadeiramente o Git, é necessário olhar além da superfície amigável de Acabamento comandos para compreender a engenharia interna—o motor de baixo nível que gerencia o banco de dados interno de objetos do Git. Esse banco de dados é um sistema de arquivos com endereçamento por conteúdo, onde cada peça de dados é armazenada como um objeto imutável.
1. Acabamento vs. Engenharia Interna
Acabamento refere-se a comandos de alto nível (como git status) projetados para interação humana. engenharia interna refere-se a comandos de baixo nível que manipulam diretamente o banco de dados de objetos do Git, fornecendo-nos acesso à representação interna real do Git.
2. O Banco de Dados de Objetos
O Git opera como um armazenamento chave-valor dentro do .git/objects diretório, abrigando objetos internos: blobs, árvores, commits, e tags. As ramificações, embora muitas vezes discutidas com objetos, servem como referências a esses commits.
3. Endereçamento SHA-1
Cada objeto é nomeado por um único checksum hexadecimal de 40 caracteres SHA-1. O Git otimiza o armazenamento usando os dois primeiros caracteres como nome de subdiretório (por exemplo, af/) e os 38 restantes como o nome do arquivo.